﻿using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using Systematize.Domain.Entities;

namespace Systematize.Domain.Services
{
    public interface ILibraryItemService<T> : IEditableService<T> 
        where T : EditableEntity
    {
        int Count();

        int Count(Expression<Func<T, bool>> predicate);

        T GetById(int id);

        IEnumerable<T> GetAll();

        T Find(Expression<Func<T, bool>> predicate);

        IEnumerable<T> FindAll(Expression<Func<T, bool>> predicate);
    }
}
